-- @owner: ningyali
-- @date: 2024-08-12
-- @testpoint: 字符类型

--step1:建表;expect:成功
drop table if exists t_ustore_nlssort_0002_01;
create table t_ustore_nlssort_0002_01( 
col_1 bigint, col_2 timestamp without time zone, col_3 bool,col_4 decimal,col_5 text ,col_6 smallint ,col_7 char(30),col_8 double precision,col_9 text,col_10 character varying(30),
col_11 bool ,col_12 bytea ,col_13 real ,col_14 numeric ,col_15 blob ,col_16 integer ,col_17 int ,col_18 timestamp with time zone ,col_19 binary_integer ,col_20 interval day to second ,
col_21 boolean, col_22 nchar(30) ,col_23 bigint ,col_24 nchar(100) ,col_25 character(1000) , col_26 text , col_27 float ,col_28 double precision ,col_29 bigint ,col_30 timestamp with time zone ,
col_31 timestamp , col_32 clob ,col_33 interval year to month, col_34 character(30) ,col_35 smallint ,col_36 blob ,col_37 char(300),col_38 float ,col_39 raw(100),col_40 clob ,
col_41 binary_double ,col_42 number(6,2) ,col_43 decimal(6,2) ,col_44 varchar2(50),col_45 varchar(30) ,col_46 nvarchar2(100), col_47 numeric(12,6),col_48 varchar2(50),col_49 date,col_50 clob ,
col_51 integer ,col_52 binary_double ,col_53 decimal(12,6),col_54 raw(8000),col_55 clob ,col_56 varchar2(8000) ,col_57 date ,col_58 number(12,6),col_59 nvarchar2(4000) ,col_60 clob ,
col_61 blob ,col_62 date ,col_63 blob , col_64 varchar(1000),col_65 date,
constraint nlssort_pk_id primary key(col_1)
) with (storage_type=ustore);

--step2:创建序列;expect:成功
drop sequence if exists sq_ustore_nlssort_0002;
create sequence sq_ustore_nlssort_0002 increment by 1 start with 1;

--step3:清空数据后插入数据;expect:成功
truncate table t_ustore_nlssort_0002_01;
begin
 for i in 1..3 loop
      insert into t_ustore_nlssort_0002_01 values(
   sq_ustore_nlssort_0002.nextval,to_timestamp('2019-01-03 14:14:12.000000','yyyy-mm-dd hh24:mi:ss.ffffff'),true,3.1415926+sq_ustore_nlssort_0002.nextval,lpad('abc','5000','a@123&^%djgk'),i,lpad('abc','30','@'),i+1.456789445455,lpad('abc','5000','a@123&^%djgk'),lpad('abc','30','b'),
   false,'010101111111100000000000000',3.1415926+sq_ustore_nlssort_0002.nextval,i/4,'010101111111100000000000000',i,i,to_timestamp('2019-01-03 14:14:12.000000','yyyy-mm-dd hh24:mi:ss.ffffff'),'1',(interval '4 5:12:10.222' day to second(3)),
   0,rpad('abc','30','e'),sq_ustore_nlssort_0002.nextval,rpad('abc','100','exc'),lpad('abc','1000','a@123&^%djgk'),lpad('abc','5000','a@123&^%djgk'),i/4,sq_ustore_nlssort_0002.nextval-99,i*3.1415,to_timestamp('2019-01-03 14:14:12.000000','yyyy-mm-dd hh24:mi:ss.ffffff'),
   to_timestamp('2019-01-03 14:58:54.000000','yyyy-mm-dd hh24:mi:ss.ffffff'),lpad('abc','5000','a@123&^%djgk'),(interval '12' year),rpad('abc','30','&'),i,'010101111111100000000000000',rpad('abc','300','exc'),i/2.15,'0faadb9',lpad('abc','5000','a@123&^%djgk'),
   1.0e+100,3.14+i,i+445.255,rpad('abc','30','&'),lpad('abc','30','&'),rpad('abc','100','&gdsh'),125563.141592,rpad('abc','30','e'),to_timestamp('2019-01-03 14:14:12.000000','yyyy-mm-dd hh24:mi:ss.ffffff'),lpad('abc','5000','a@123汉字&^%djgk'),
   sq_ustore_nlssort_0002.nextval+2,-1.79e+100,98*0.99,'01010',lpad('abc','5000','a@123&^%djgk'),rpad('abc','8000','a@123&^%djgk'),to_timestamp('2019-01-03 14:14:12.000000','yyyy-mm-dd hh24:mi:ss.ffffff'),25563.1415,lpad('abc','3000','a字符串@123&^%djgk'),lpad('10',2000,'01010'),
  '01010',to_timestamp('2019-01-03 14:14:12.000000','yyyy-mm-dd hh24:mi:ss.ffffff'),'010101111111100000000000000',rpad('abc','1000','&gdsh'),to_timestamp('2019-01-03 15:19:00.000000','yyyy-mm-dd hh24:mi:ss.ffffff')
   );

    end loop;
end;
/

--step5:建表并插入数据;expect:成功
drop table if exists t_ustore_nlssort_0002_02 cascade;
create table t_ustore_nlssort_0002_02(n_char varchar) with (storage_type=ustore);
insert into t_ustore_nlssort_0002_02 values ('ahkhkh');
insert into t_ustore_nlssort_0002_02 values ('bhkhkh');
insert into t_ustore_nlssort_0002_02 values ('chkhkh');
insert into t_ustore_nlssort_0002_02 values ('qhkhkh');
insert into t_ustore_nlssort_0002_02 values ('dhkhkh');
insert into t_ustore_nlssort_0002_02 values ('fhkhkh');

--step6:查询;expect:成功
select n_char from t_ustore_nlssort_0002_02 order by nlssort( n_char, 'nls_sort = schinese_pinyin_m');
select col_7 from t_ustore_nlssort_0002_01 order by nlssort( col_7, 'nls_sort = schinese_pinyin_m') limit 2;
select col_22 from t_ustore_nlssort_0002_01 order by nlssort( col_22, 'nls_sort = schinese_pinyin_m') limit 2;
select col_24 from t_ustore_nlssort_0002_01 order by nlssort( col_24, 'nls_sort = schinese_pinyin_m') limit 2;
select n_char from t_ustore_nlssort_0002_02 order by nlssort( n_char, 'nls_sort = generic_m_ci');
select col_7 from t_ustore_nlssort_0002_01 order by nlssort( col_7, 'nls_sort = generic_m_ci') limit 2;
select col_22 from t_ustore_nlssort_0002_01 order by nlssort( col_22, 'nls_sort = generic_m_ci') limit 2;
select col_24 from t_ustore_nlssort_0002_01 order by nlssort( col_24, 'nls_sort = generic_m_ci') limit 2;

--step7:清理环境;expect:成功
drop table if exists t_ustore_nlssort_0002_01,t_ustore_nlssort_0002_02 cascade;
drop sequence if exists sq_ustore_nlssort_0002;